#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql.h>

#if !defined(LINUX)
#pragma comment(lib,"libmysql.lib")
#pragma warning(disable:4996)
#endif

#include "Logging.h"
#include "DbaAccess.h"
#include "ConfigFile.h"

int GetConfigsFromDB(char *key, char *value, int maxlen)
{
	MYSQL     *mysql;
	MYSQL_RES *res;
	MYSQL_ROW row;
	char      sqlcmd[1024];
	
	char           dServer[40]={"127.0.0.1"};                     // 数据库访问地址
	char           dUser[40]={"xudan"};                       // 数据库访问用户
	char           dPass[40]={"Guangdian24lou"};                       // 数据库访问密码
	char           dName[40]={"GPRS"};                       // 数据库名称
	unsigned short dPort=3306;                           // 数据库访问端口
	

	if( ( mysql = mysql_init(NULL) ) == NULL )
	{
        WriteFileLog(LERROR,"读取数据库配置参数（%s），MYSQL初始化失败！",key);
		return(-1);
	}

	if(!mysql_real_connect(mysql,dServer,dUser,dPass,dName,dPort,NULL,0))
	{
        WriteFileLog(LERROR,"读取数据库配置参数（%s），数据库连接失败！",key);
		mysql_close(mysql);
		return(-2);
	}

	#if defined(LINUX)
	if( mysql_real_query(mysql,"set names utf8",strlen("set names utf8")) )
	#else
	if( mysql_real_query(mysql,"set names gb2312",strlen("set names gb2312")) )
	#endif
	{
        WriteFileLog(LERROR,"读取数据库配置参数（%s），数据库编码设置失败！",key);
		mysql_close(mysql);
		return(-3);
	}
	else{printf("读取配置参数成功！\n");}

	//char tmp[300] = { "insert into gpsdata (clientId, matchId, time, latitude, latitudeHemisphere, longitude, longitudeHemisphere, speed, course, mileage) values ('1', '1', '1900-10-10 10:10:10', '30', 'N', '20', 'E', '20', '20', '20', )" };
	
	//if( mysql_real_query(mysql,tmp,strlen(tmp)) )
	//if( mysql_real_query(mysql,"insert into gpsdata (clientId, matchId, time, latitude, latitudeHemisphere, longitude, longitudeHemisphere, speed, course, mileage) values ('1', '1', '1900-10-10 10:10:10', '30', 'N', '20', 'E', '20', '20', '20')",strlen("insert into gpsdata (clientId, matchId, time, latitude, latitudeHemisphere, longitude, longitudeHemisphere, speed, course, mileage) values ('1', '1', '1900-10-10 10:10:10', '30', 'N', '20', 'E', '20', '20', '20')")) )
	//{
        //WriteFileLog(LERROR,"写数据库失败！");
	//	mysql_close(mysql);
	//	return(-4);
	//}
	/*if( mysql_real_query(mysql,"select * from GPRS.global",strlen("select * from GPRS.global")) )
	{
        WriteFileLog(LERROR,"读数据库失败！");
		mysql_close(mysql);
		return(-4);
	}*/
	// sprintf(sqlcmd,"SELECT value FROM configs WHERE name = '%s'",key);
	// if( mysql_real_query(mysql,sqlcmd,strlen(sqlcmd)) )
	// {
        // WriteFileLog(LERROR,"读取数据库配置参数（%s），数据库查询失败！",key);
		// mysql_close(mysql);
		// return(-4);
	// }

	// if( ( res = mysql_store_result(mysql) ) == NULL )
	// {
        // WriteFileLog(LERROR,"读取数据库配置参数（%s），获取查询结果集失败！",key);
		// mysql_close(mysql);
		// return(-5);
	// }

	// if(  mysql_num_rows(res) != 1 )
	// {
        // WriteFileLog(LERROR,"读取数据库配置参数（%s），结果集数量错误！",key);
		// mysql_free_result(res);
		// mysql_close(mysql);
		// return(-6);
	// }

	// if( (row = mysql_fetch_row(res)) == NULL )
	// {
        // WriteFileLog(LERROR,"读取数据库配置参数（%s），获取查询结果内容失败！",key);
		// mysql_free_result(res);
		// mysql_close(mysql);
		// return(-7);
	// }

	// if( row[0] == NULL )
	// {
        // WriteFileLog(LERROR,"读取数据库配置参数（%s），查询结果内容错误！",key);
		// mysql_free_result(res);
		// mysql_close(mysql);
		// return(-8);
	// }

	// if( strlen(row[0]) >= (size_t)maxlen )
	// {
        // WriteFileLog(LERROR,"读取数据库配置参数（%s），查询结果内容超长！",key);
		// mysql_free_result(res);
		// mysql_close(mysql);
		// return(-9);
	// }

	//strcpy(value,row[0]);

	mysql_free_result(res);
	mysql_close(mysql);
	WriteFileLog(LDEBUG,"读取数据库配置参数（%s:%s）成功！",key,value);
	return(0);
}

